<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{padding: 0;margin: 0;}
        .box{
            width: 200px;
            height: 200px;
            background-color: #6ff;
            padding: 5px;
            border: 1px solid #333;
            /* display: none; */
            /* margin: 100px; */
            position: absolute;
            left: 100px;
            top: 100px;

        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
<script>
    var box = document.getElementsByClassName("box")[0];
    console.dir(box);

    // 元素节点的属性

    // clientWidth  clientHeight     可视宽度(高度)

    // 优点:  快捷获取 元素的可视宽度(高度)
    // 缺点:  
    // 1. 只能取值  不能赋值
    // 2. 可视宽度(高度) = (content + padding)  元素没有padding => 盒子本身的宽度和高度  元素有padding =>  是否期望包含padding,不期望 =>获取非行内样式 getComputedStyle
    // 3. 对于隐藏( display: none; hidden)的元素   clientWidth  clientHeight 不生效 => 0

    console.log(box.clientWidth,box.clientHeight);
    
    // offsetLeft  offsetTop      获取匹配的元素相对于参照物父元素的偏移(margin 定位(relative absolute fixed))  
    // offsetParent               获取匹配的元素的参照物父元素

    // 优点: 快捷获取匹配的元素相对于参照物父元素的偏移   

    // 缺点:
    // 1. 只能取值  不能赋值
    // 2. 对于隐藏( display: none; hidden)的元素   clientWidth  clientHeight 不生效 => 0 

    console.log(box.offsetParent,box.offsetLeft,box.offsetTop);



    /* console.log(parseInt(getStyle(box,"width")));
    console.log(parseInt(getStyle(box,"height")));
    // 获取非行内样式  
    function getStyle(ele,attr){
        if(getComputedStyle){
            return getComputedStyle(ele)[attr];             // {width,height,background}
        }else{
            return ele.currentStyle[attr];
        }
    }
 */




</script>
</html>